home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 5 / Amiga Tools 5.iso / grafik / 3d & render tools / irit / contrib / scripts / sol0.irt < prev    next >
Encoding:
Text File  |  1996-07-16  |  3.6 KB  |  146 lines

  1. #
  2. # Extrusion example of the IRIT letters created manually:
  3. #
  4. #                Created by Gershon Elber,    Mar 89
  5. #
  6.  
  7. save_mat = view_mat;
  8. save_res = resolution;
  9.  
  10. view_mat = view_mat * scale(vector(-10.0, 1.0, 1.0));
  11.  
  12. v1  = vector( 0.0, 0.0, 0.0);                      # The I letter
  13. v2  = vector( 0.3, 0.0, 0.0);
  14. v3  = vector( 0.3, 0.0, 0.1);
  15. v4  = vector( 0.2, 0.0, 0.1);
  16. v5  = vector( 0.2, 0.0, 0.5);
  17. v6  = vector( 0.3, 0.0, 0.5);
  18. v7  = vector( 0.3, 0.0, 0.6);
  19. v8  = vector( 0.0, 0.0, 0.6);
  20. v9  = vector( 0.0, 0.0, 0.5);
  21. v10 = vector( 0.1, 0.0, 0.5);
  22. v11 = vector( 0.1, 0.0, 0.1);
  23. v12 = vector( 0.0, 0.0, 0.1);
  24.  
  25. I = poly( list( v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12 ), false );
  26.  
  27. v1  = vector( 0.0, 0.0, 0.0);                    # The R Letter
  28. v2  = vector( 0.1, 0.0, 0.0);
  29. v3  = vector( 0.1, 0.0, 0.5);
  30. v4  = vector( 0.2, 0.0, 0.5);
  31. v5  = vector( 0.2, 0.0, 0.4);
  32. v6  = vector( 0.1, 0.0, 0.4);
  33. v7  = vector( 0.1, 0.0, 0.3);
  34. v8  = vector( 0.2, 0.0, 0.0);
  35. v9  = vector( 0.3, 0.0, 0.0);
  36. v10 = vector( 0.2, 0.0, 0.3);
  37. v11 = vector( 0.3, 0.0, 0.3);
  38. v12 = vector( 0.3, 0.0, 0.6);
  39. v13 = vector( 0.0, 0.0, 0.6);
  40.  
  41. R = poly( list( v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13 ), false );
  42.  
  43. v1  = vector( 0.1, 0.0, 0.0);
  44. v2  = vector( 0.1, 0.0, 0.5);
  45. v3  = vector( 0.0, 0.0, 0.5);
  46. v4  = vector( 0.0, 0.0, 0.6);
  47. v5  = vector( 0.3, 0.0, 0.6);
  48. v6  = vector( 0.3, 0.0, 0.5);
  49. v7  = vector( 0.2, 0.0, 0.5);
  50. v8  = vector( 0.2, 0.0, 0.0);
  51.  
  52. T = poly( list( v1, v2, v3, v4, v5, v6, v7, v8 ), false );
  53.  
  54. free(v1); free(v2); free(v3); free(v4); free(v5); free(v6); free(v7);
  55. free(v8); free(v9); free(v10); free(v11); free(v12); free(v13);
  56.  
  57. I1 = I;
  58. R2 = R * trans(vector( 0.4, 0.0, 0.0));
  59. I3 = I * trans(vector( 0.8, 0.0, 0.0));
  60. T4 = T * trans(vector( 1.2, 0.0, 0.0));
  61. free(I);
  62. free(R);
  63. free(T);
  64.  
  65. view_mat = view_mat * trans(vector(7.0, 1.0, -4.0)) * scale(vector(-10.0, -10.0, -4.0));
  66.  
  67.  
  68. ext_dir = vector( 0.0,-1.0, 0.0);
  69.  
  70. I1X = extrude(I1, ext_dir);
  71. R2X = extrude(R2, ext_dir);
  72. I3X = extrude(I3, ext_dir);
  73. T4X = extrude(T4, ext_dir);
  74. free(I1);
  75. free(R2);
  76. free(I3);
  77. free(T4);
  78.  
  79. S1 = I1X ^ R2X ^ I3X ^ T4X;
  80. free(I1X);
  81. free(R2X);
  82. free(I3X);
  83. free(T4X);
  84.  
  85. final = convex(S1);
  86. free(S1);
  87.  
  88. Pt0 = CTLPT( E3, 0.0, 0.0, 0.0 );
  89. Pt1 = CTLPT( E3, 1.0, 1.0, 0.0 );
  90. Pt2 = CTLPT( E3, 2.0, 2.0, 0.0 );
  91. Pt3 = CTLPT( E3, 3.0, 3.0, 0.0 );
  92. Pt4 = CTLPT( E3, -6.0, -8.0, 0.0);
  93. Pt5 = CTLPT( E3, 5.0, 5.0, 0.0);
  94. Pt6 = CTLPT( E3, 6.0, 6.0, 0.0);
  95. Pt7 = CTLPT( E3, 12.0, 12.0, 0.0);
  96. Pt8 = CTLPT( E3, -9.0, -9.0, 0.0);
  97. Pt9 = CTLPT( E3, -1.0, -1.0, 0.0);
  98. Pt10 = CTLPT( E3, 2.8, 2.0, 0.0);
  99. Pt11 = CTLPT( E3, 0.2, 0.2, 0.0);
  100. Pt12 = CTLPT( E2, -1.0, -1.0);
  101. Pt13 = CTLPT( E2, 3.0, 3.0);
  102. VISIBLE = CBEZIER( list(Pt12,Pt13));
  103. MOV_Y = CBEZIER( list(Pt0,Pt2,Pt6,Pt2,Pt0));
  104. SCL   = CBEZIER( list(Pt1,Pt5,Pt6,Pt3));
  105. ROT_Z = CBEZIER( list(Pt0,Pt10,Pt3));
  106. ROT_Y = CBEZIER( list(Pt0,Pt1,Pt2,Pt5,Pt1,Pt0));
  107. MOV_Z = CBEZIER( list(Pt0,Pt2,Pt7));
  108. ROT_X = CBEZIER( list(Pt0,Pt2,Pt5,Pt1,Pt0));
  109.  
  110. VISIBLE = CREPARAM(VISIBLE,0.0,4.0);
  111. SCL  =  CREPARAM(SCL,0.5,1.5);
  112. ROT_Z = CREPARAM(ROT_Z,0.5,1.5);
  113. ROT_Y = CREPARAM(ROT_Y,2.0,3.5);
  114. MOV_Y = CREPARAM(MOV_Y,0.5,1.5);
  115. MOV_Z = CREPARAM(MOV_Z,3.2,4.0);
  116. ROT_X = CREPARAM(ROT_X,2.0,3.5);
  117.  
  118. attrib(final,"animation",list(MOV_Z,ROT_Y,ROT_X,ROT_Z,SCL,VISIBLE,MOV_Y));
  119.  
  120. free(VISIBLE);
  121. free(ROT_Z);
  122. free(SCL);
  123.  
  124. B = BOX( vector( 0, 0, 0 ), 1, 1, 1 );
  125.  
  126. SCL   = CBEZIER( list(Pt0,Pt3,Pt5));
  127. VISIBLE = CBEZIER( list(Pt0,Pt3,Pt3));
  128. ROT_Z = CBEZIER( list(Pt0,Pt5,Pt5));
  129. VISIBLE = CREPARAM(VISIBLE,2.0,4.0);
  130. SCL  =  CREPARAM(SCL,0.0,4.0);
  131. ROT_Z = CREPARAM(ROT_Z,1.0,4.0);
  132.  
  133. color(B,red);
  134. attrib(B,"animation",list(VISIBLE,ROT_Z,SCL));
  135. attrib(B,"transp","0.5");
  136.  
  137. demo = list(B, final);
  138.  
  139. save("sol01", demo);
  140. free(final);
  141. free(demo);
  142. free(B);
  143.  
  144. resolution = save_res;
  145. view_mat = save_mat;
  146.